tg-me.com/mobileproglib/5890
Last Update:
🔧 How to: настраиваем GitLab CI/CD для мобильных тестов
Ручные сборки и деплой занимают время, а человеческий фактор может привести к ошибкам. Автоматизируем процесс!
Файл .gitlab-ci.yml – сердце CI/CD в GitLab. Здесь описываем, какие тесты и когда запускать.
Пример пайплайна для Android (Appium + Pytest):
stages:
- test
variables:
ANDROID_HOME: "/sdk"
PATH: "$ANDROID_HOME/emulator:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$PATH"
test_ui:
stage: test
image: python:3.9
before_script:
- pip install -r requirements.txt
script:
- pytest tests/ui_tests --junitxml=report.xml
artifacts:
paths:
- report.xml
✔️ stages: Определяем этапы (у нас пока только test).
✔️ variables: Переменные среды (Android SDK и путь к эмулятору).
✔️ test_ui: Джоб, который запускает UI-тесты.
✔️ image: Используем докер-образ с Python 3.9.
✔️ before_script: Устанавливаем зависимости перед запуском.
✔️ script: Запускаем тесты.
✔️ artifacts: Сохраняем отчёт о тестах.
Чтобы GitLab выполнял тесты, нужен Runner – агент, который их запускает.
Запускаем Runner на своём сервере
sudo curl -L --output /usr/local/bin/gitlab-runner \
"https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64"
sudo chmod +x /usr/local/bin/gitlab-runner
gitlab-runner register
Вводим URL репозитория и токен (берём в Settings → CI/CD → Runners).
gitlab-runner start
Теперь тесты будут выполняться прямо на твоей машине или сервере.
Если нужно гонять тесты на Android:
test_android:
stage: test
image: budtmo/docker-android:emulator_11.0
before_script:
- start-emulator
- adb wait-for-device
script:
- pytest tests/android_tests
✔️ budtmo/docker-android – докер-контейнер с эмулятором Android.
✔️ start-emulator – запускаем эмулятор.
✔️ adb wait-for-device – ждём, пока устройство загрузится.
Чтобы собирать APK (Android) или IPA (iOS) в GitLab CI/CD:
Android (Gradle)
build_apk:
stage: build
image: openjdk:11
script:
- ./gradlew assembleDebug
artifacts:
paths:
- app/build/outputs/apk/debug/app-debug.apk
iOS (Fastlane)
build_ios:
stage: build
image: circleci/macos-xcode
script:
- bundle exec fastlane build
artifacts:
paths:
- build/ios.ipa
Какой CI/CD используете вы? Делитесь опытом в комментариях
#буст